/****************************************************************************\
 * @file     BR_Config.h
 * @author   傅帅
 * @date     2019/12/25
 * @brief    配置文件
 ******************************************************************************
 * @note     
 ****************************************************************************/
#include "FreeRTOS.h"
#include "arm_math.h"

/* -------------------------------------------------- 物理参数配置部分 ----------------------------------------------- */
// 底盘
#define BR_configCHASSIS_R 317.0f                       /* 底盘中心到轮子的距离[mm] */
#define BR_configCHASSIS_X 1.0f                         /* 底盘X方向(左右)两轮间的距离(用于计算长方形车体,比例对即可) */
#define BR_configCHASSIS_Y 1.0f                         /* 底盘Y方向(前后)两轮间的距离 */
// 驱动电机
#define BR_configWHEEL_R 51.5f                          /* 轮子半径[mm] */
#define BR_configMAX_VEL 12940.0f                       /* 100KV,24V下理论最高速,单位[mm/s] */
// 舵向电机
#define BR_configMAX_SAFE_CIRCLES 1.0                   /* 舵向电机最大安全圈数 */
#define BR_configServoReductionRatio 36 * 4.8667f       /* 舵向电机减速比 */
#define BR_configSERVO_MOTORS_ZERO_COUNT {386, 1396, 5864, 2176}   /* 舵向电机零位计数 */
#define BR_configMAX_SAFE_COUNTS (int)( 8192 * BR_configMAX_SAFE_CIRCLES * BR_configServoReductionRatio )  /* 舵向电机最大安全计数 */
// 接近开关
#define BR_configCLOSE_SWITCH_START_GPIO GPIO_Pin_0     /* 第一个接近开关输入GPIO，请按舵向顺序顺序排布 */

/* -------------------------------------------------- 调试参数配置部分 ----------------------------------------------- */
// 手动控制
#define BR_configMANUAL_CONTROL_MAX_VEL 8000.0f         /* 手动模式最大速度[mm/s] */
#define BR_configMANUAL_CONTROL_MAX_OMEGA PI / 2        /* 手动模式自转角速度[rad/s] */
// 底盘速度闭环
#define BR_configCHASSIS_VEL_CLOSELOOP_P 1.2f           /* 底盘速度闭环P */
#define BR_configCHASSIS_ACC_MAX_ADDITION_PARAM 0.4f    /* 加速时最大修正量(相对于目标速度) */
#define BR_configCHASSIS_DEC_MAX_ADDITION_PARAM 0.6f    /* 减速时最大修正量(相对于当前速度) */
// 轨迹跟随
#define BR_configFOLLOWING_SAFE_DISTANCE 500.0f         /* 安全距离[mm] */
#define BR_configFINAL_POINT_P 12.0f                    /* 最终点位置校正P */
#define BR_configFINAL_POINT_D 10.0f                    /* 最终点位置校正D */
#define BR_configFINAL_POINT_MAX_VEL 600.0f             /* 最终点位置校正最高速度[mm/s] */
#define BR_configFINAL_DIFF_P 10000.0f                  /* 最终点差速角度校正P */
#define BR_configFINAL_DIFF_D 0.0f                      /* 最终点差速角度校正D */
#define BR_configFINAL_DIFF_MAX_VEL 1000.0f             /* 最终点差速角度最高速度[mm/s] */

/* -------------------------------------------------- 其他配置部分 ----------------------------------------------- */
#define BR_configUSE_STAT 0                             /* 是否开启统计任务 */
#define BR_configUSE_CONSOLE 0                          /* 是否开启控制台任务 */

#define BR_configMAX_ACT_NUM 10                         /* 最大ACTION数目 */

#define BR_configCONSOLE_USART 1                        /* 控制台使用串口号 */
#define BR_configLOCATOR_USART 2                        /* 全场定位使用串口号 */
#define BR_configSERVO_MOTOR_USART 3                    /* 舵向电机驱动板使用串口号 */
#define BR_configREMOTE_CONTROLLER_USART 4              /* 遥控器使用串口号 */
